Geometry Based Efficient Decoder for Underdetermined MIMO Systems and Decoding Method Thereof

ABSTRACT

A decoder for underdetermined MIMO systems with low decoding complexity is provided. The decoder consists of two stages: 1. Obtaining all valid candidate points efficiently by slab decoder. 2. Finding the optimal solution by conducting the intersectional operations with dynamic radius adaptation to the candidate set obtained from Stage 1. A reordering strategy is also disclosed. The reordering can be incorporated into the proposed decoding algorithm to provide a lower computational complexity and near-ML decoding performance for underdetermined MIMO systems.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The exemplary embodiment(s) of the present invention relates to a field of decoder for underdetermined MIMO systems. More specifically, the exemplary embodiment(s) of the present invention relates to a geometry based efficient decoder for underdetermined MIMO systems and a decoding method thereof

2. Description of Related Art

Recently, in order to satisfy the growing demands of the personal communications, the design of next generation wireless communication systems goes for supporting high data rate and high mobility. However, the link quality suffers from frequency selective and time selective fading caused by multipath propagation in wireless channels. Moreover, the quality and reliability of wireless communication are degraded by Doppler shift and carrier frequency/phase. Beside, due to the limited available bandwidth and transmitted power, the design challenge of wireless communication systems becomes more difficult. Therefore, many innovative techniques have been devised and extensively used in this field to improve the reliability and the spectral efficiency of wireless communication links e.g. the coded multicarrier modulation, smart antenna and multiple-input multiple-output (MIMO) technology and adaptive modulation.

Among these technologies, MIMO is the most outstanding one. MIMO technology involves the use of multiple antennas to improve link performance. There are two major features of MIMO technologies: spatial multiplexing for increasing data rate and spatial diversity for improve link quality. Spatial multiplexing offers a linear increasing of data rate by transmitting multiple independent data streams at the same time. Spatial diversity provides diversity gain to mitigate fading effects by using the multiple (ideally independent) copies of the transmitted signal in space, time and frequency. They are usually trade-offs to each other and provide an effective and promising solution while achieving high-data rate and reliable transmission.

The major MIMO signal detection schemes include linear detection, successive interference cancellation (SIC) and the maximum-likelihood (ML) detection. The advantages of the first two detection schemes are low decoding complexity and easy implementation but their detection performances are non-optimal. ML detection provides optimal detection performance but its complexity increases exponentially with the size of constellation and the number of transmit antennas. Therefore, the design of high-performance and low decoding complexity is the one of key issues of MIMO designs. To reduce the complexity of the ML detector, the sphere decoding algorithm (SDA) has received considerable attention as an efficient detection scheme for MIMO systems. However, typical SDA fail to work in underdetermined MIMO systems where the number of transmit antennas is larger than the number of receive antennas.

To overcome the above drawbacks of typical SDA, the conventional generalized sphere decoder (GSD), double-layer sphere decoder (DLSD) and slab sphere decoder (SSD) are introduced. These decoders transform underdetermined systems into overdetermined systems that can be solved by the SDA. Since the GSD performs an exhaustive search on (N_(t)-N_(r)) dimensions for the ML solution, the decoding complexity is increasing with the size of constellation and the antenna number difference. The DLSD uses the outer sphere decoder to find the valid candidate points and then the inner sphere decoder uses those points to find the solution. The SSD uses the geometry concept to find the valid candidate points to reduce the searching complexity of DLSD. However, the SDA still needs to be performed too many times in SSD.

SUMMARY OF THE INVENTION

A decoder for underdetermined MIMO systems with low decoding complexity is provided. The decoder consists of two stages: 1. Obtaining all valid candidate points efficiently by slab decoder. 2. Finding the optimal solution by conducting the intersectional operations with dynamic radius adaptation to the candidate set obtained from Stage 1. A reordering strategy is also disclosed. The reordering can be incorporated into the proposed decoding algorithm to provide a lower computational complexity and near-ML decoding performance for underdetermined MIMO systems.

With these and other objects, advantages, and features of the invention that may become hereinafter apparent, the nature of the invention may be more clearly understood by reference to the detailed description of the invention, the embodiments and to the several drawings herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The exemplary embodiment(s) of the present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.

FIG. 1 is a flowchart showing the steps of the first stage of the geometry based efficient decoding algorithm for underdetermined MIMO systems according to one embodiment of the invention;

FIG. 2 is a flowchart showing the steps of the second stage of the geometry based efficient decoding algorithm for underdetermined MIMO systems according to one embodiment of the invention;

FIG. 3 illustrates a geometrical diagram of slabs with different y;

FIG. 4 is a flowchart showing the preprocessing in the geometry based efficient decoding algorithm for underdetermined MIMO systems according to one embodiment of the invention;

FIG. 5 is a flowchart showing the preprocessing in the geometry based efficient decoding algorithm for underdetermined MIMO systems according to another embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Exemplary embodiments of the present invention are described herein in the context of a geometry based efficient decoder for underdetermined MIMO systems and a decoding method thereof.

Those of ordinary skilled in the art will realize that the following detailed description of the exemplary embodiment(s) is illustrative only and is not intended to be in any way limiting. Other embodiments will readily suggest themselves to such skilled persons having the benefit of this disclosure. Reference will now be made in detail to implementations of the exemplary embodiment(s) as illustrated in the accompanying drawings. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts.

In accordance with the embodiment(s) of the present invention, the components, process steps, and/or data structures described herein may be implemented using various types of operating systems, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose nature, such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein. Where a method comprising a series of process steps is implemented by a computer or a machine and those process steps can be stored as a series of instructions readable by the machine, they may be stored on a tangible medium such as a computer memory device (e.g., ROM (Read Only Memory), PROM (Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), FLASH Memory, Jump Drive, and the like), magnetic storage medium (e.g., tape, magnetic disk drive, and the like), optical storage medium (e.g., CD-ROM, DVD-ROM, paper card and paper tape, and the like) and other known types of program memory.

According to embodiments of the invention, a decoder for underdetermined MIMO systems with low decoding complexity is provided. The decoder consists of two stages. The first stage involves steps for obtaining all valid candidate points efficiently by slab decoder. The second stage involves steps for finding the optimal solution by conducting the intersectional operations with dynamic radius adaptation to the candidate set obtained from the first stage.

Additionally, a reordering strategy (preprocessing) that can be incorporated into the inventive decoding algorithm to provide a lower computational complexity and near-ML decoding performance for underdetermined MIMO systems is also provided.

Stage 1

FIG. 1 is a flowchart showing the steps of the first stage of the geometry based efficient decoding algorithm for underdetermined MIMO systems according to one embodiment of the invention. It is similar to the PDA and SLA, but only one algorithm is used to find those points that fall inside the slab, so no constellation points and dimensions are multiply searched.

Consider a Gaussian MIMO system with N_(t) transmit antennas and N_(r) receive antennas. The relation between transmitted signal vectors and received signal vectors can be written as

{tilde over (y)}={tilde over (H)}{tilde over (x)}+ñ,   (1)

where {tilde over (y)}=[{tilde over (y)}₁,{tilde over (y)}₂, . . . {tilde over (y)}_(Nr)]∈ C^(Nr×1) stands for the received signal vector, {tilde over (x)}=[{tilde over (x)}₁,{tilde over (x)}₂, . . . , {tilde over (x)}_(Nt)]∈ C^(Nt+1) stands for the transmitted signal vector, {tilde over (H)} stands for the frequency-flat fading channel matrix:

$\begin{matrix} {{\overset{\sim}{H} = {\begin{bmatrix} {\overset{\sim}{h}}_{1,1} & {\overset{\sim}{h}}_{1,2} & \ldots & {\overset{\sim}{h}}_{1,{Nt}} \\ {\overset{\sim}{h}}_{2,1} & {\overset{\sim}{h}}_{2,2} & \ldots & {\overset{\sim}{h}}_{1,{Nt}} \\ \vdots & \vdots & \ddots & \vdots \\ {\overset{\sim}{h}}_{{Nr},1} & {\overset{\sim}{h}}_{{Nr},2} & \ldots & {\overset{\sim}{h}}_{{Nr},{Nt}} \end{bmatrix} \in C^{{Nt} \times {Nt}}}},} & (2) \end{matrix}$

where the elements of {tilde over (H)} are complex i.i.d. Gaussian random variables with normal distribution CN(0,1) and ñ=[ñ₁,ñ₂, . . . , ñ_(Nr)]∈ C^(Nr×1) stands for the complex additive white Gaussian noise (AWGN) with normal distribution CN (0,σ²I). It is assumed N_(t)>N_(r) for an underdetermined MIMO systems.

The complex equation in (1) can be rewritten into an equivalent real system by real value decomposition as

y=Hx+n   (3)

where

y=└Re{{tilde over (y)}} ^(T) Im{{tilde over (y)}} ^(T) ┘∈ R ^(M)

x=[Re{{tilde over (x)}} ^(T) Im{{tilde over (x)}} ^(T) ]∈ R ^(N),

n=[Re{ñ} ^(T) Im{ñ} ^(T) ]∈ R ^(M)   (4)

and

$\begin{matrix} {{H = {\begin{bmatrix} {{Re}\left\{ \overset{\sim}{H} \right\}^{T}} & {{- {Im}}\left\{ \overset{\sim}{H} \right\}^{T}} \\ {{Im}\left\{ \overset{\sim}{H} \right\}^{T}} & {{Re}\left\{ \overset{\sim}{H} \right\}^{T}} \end{bmatrix} \in R^{M \times N}}},} & (5) \end{matrix}$

where M=2N, and N=2N_(t). The ML estimator {circumflex over (x)} of x is obtained by minimizing the Euclidean distance of y from the legal lattice points as

$\begin{matrix} {{\hat{x} = {{\underset{x \in Z^{N}}{\arg \; \min}{{y - {Hx}}}^{2}} = {\underset{x \in Z^{N}}{\arg \; \min}{{R\left( {\rho - x} \right)}}^{2}}}},} & (6) \end{matrix}$

where Z={−3, −1, 1, 3} for 16-QAM cases for examples, ρ=H^(T)(HH^(T))⁻¹ y, Q is a M×M unitary matrix, and R is a M×N upper triangular matrix corresponding to the QR-decomposition of H, i.e., H=QR. To obtain X in equation (6) efficiently, an algorithm should be provided to solve a search problem that finds all the lattice points satisfying

∥y−Hx∥ ² ≦C ²   (7)

for a given radius C (>0). Substituting H=QR into the equation (7) results in

∥y′−Rx∥ ² ≦C ²,   (8)

where y′=Q^(T) y . If N>M, then

−C≦y′ _(M) −└r _(M,M) x _(M) + . . . +r _(M,N) x _(N) ┘≦C,   (9)

at the M-th layer. Equation (9) involves N-M+1 dimensions for detection. The algorithm aims to find those points that fall inside the slab, i.e., satisfy the equation (9).

First, consider a slab having an equation |Σ_(i=1) ^(N)w,x,−y|≦C. The main idea of the algorithm is to find those points satisfying the equation.

Define X as a set of points to be searched, X_(V) as a set of searched points, and X_(in) as a set of points satisfying the search criteria, wherein the initial values of all the three sets are empty. Each candidate points has a corresponding vector D_(v) wherein each element is a binary digit, and “1” represents its corresponding dimension is searched and “0” represents unsearched. Initially, each candidate point corresponds to a vector D_(v)=[0,0, . . . , 0∈

^(N), i.e., all the corresponding dimensions are unsearched. p is a temporary variable and has a value p=[p₁ p₂ . . . p_(N)]^(T) ∈

^(N), i.e., it is a starting point for current search.

For each candidate point, a distance between the point and the slab y=Σ_(i=1) ^(N)w_(i)x_(i) is defined as dist=|Σ_(i−1) ^(N)w_(i)x_(i)−y|.

In the step 100, initialization is performed. A point is arbitrarily selected as an initial point x_(int)=[x₁ ^(int) x₂ ^(int)]^(T) ∈

^(N) and X=x_(int). Then, it is stored in p and deleted from X.

In the step 102, it is determined whether X_(V) is empty and p is 0. If yes, the procedure goes to the step 128, wherein all the points in X_(in) and their corresponding distances are the solutions. Otherwise, in the step 104, a value of k representing an unsearched dimension of the point is arbitrarily selected. The kth element in its corresponding vector D_(V) is “0”. Then, the following is calculated:

${x_{k,{up}} = {p_{k} - \frac{\Delta \; {y(p)}}{w_{k}} + C}},{x_{k,{low}} = {p_{k} - \frac{\Delta \; {y(p)}}{w_{k}} - {C.{where}}}}$ ${\Delta \; {y(p)}} = {{\sum\limits_{i = 1}^{N}{w_{i}p_{i}}} - {y.}}$

According to the calculated results of x_(k,up),x_(k,low), all the legitimate points between them are derived. In the step 106, it is determined whether the derived candidate points exists in X_(V). If no, the point is added into X, X_(V) and X_(in) in the step 110, and the kth element of their corresponding vector D_(V) is set to “1”. Its corresponding distance can be calculated from previously derived value of Δy() .

In the step 112, candidate points └x_(k,up)+d┘,┌x_(k,low)−d┐ are derived according to x_(k,up),x_(x,low), which are the points outside the upper and lower limits but nearest to the slab. d is the smallest distance between the points. In the step 114, it is determined whether these points exist in X_(V). If no, the points are added into X and X_(V) in the step 118, and the kth element of the corresponding vector D_(V) is set to “1”. Otherwise, in the step 116, only the kth element of the corresponding vector D_(V) is set to “1”. It is noted that the value of dist is not required here.

Now, since the search starting from the point p in the kth direction is completed, the kth element of the corresponding vector D_(V) is set to “1” in the step 120.

In the step 122, it is determined: (a) whether all the elements of the corresponding vector D_(V) are “1”, if yes, the procedure goes to the step 126, otherwise, it is determined further in the step 124: (b) whether p satisfies the current search criteria, if no, the procedure goes to the step 126, otherwise, it goes back to the step 102. In the step 126, a candidate point is arbitrarily selected for substitution of the current point p and deleted from X.

Finally, by iterating the above procedure, each point x in X_(in) falls in the slab. The above search algorithm can efficiently find the valid candidate points satisfying (9) for a given C. Conventional underdetermined decoders use all those points to find the optimal solution by the SDA. when the radius of constraints is not large. However, as described above, the decoding complexity is closely related to the number of candidate points. The number of candidate points derived from the above search algorithm will be still large in case of large antenna number difference and/or large constellation. Therefore, according to embodiments of the invention, instead of using SDA, the optimal solution is derived by conducting the intersectional operations with dynamic radius adaptation, which will be explained below.

Stage 2

FIG. 2 is a flowchart showing the steps of the second stage of the geometry based efficient decoding algorithm for underdetermined MIMO systems according to one embodiment of the invention. The equation (8) can be rewritten and expanded as the summation form as follows:

                                          (11) $\left. {{{\begin{bmatrix} y_{i}^{\prime} \\ \vdots \\ y_{M - 1}^{\prime} \\ y_{M}^{\prime} \end{bmatrix} - {\begin{bmatrix} r_{1,1} & r_{1,2} & \ldots & r_{1,{M - 1}} & r_{1,M} & \ldots & r_{1,N} \\ 0 & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & r_{{M - 1},{M - 1}} & r_{{M - 1},M} & \ldots & r_{{M - 1},N} \\ 0 & \ldots & 0 & 0 & r_{M,M} & \ldots & r_{M,N} \end{bmatrix}\begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{N} \end{bmatrix}}}}^{2} \leq C^{2}}\Rightarrow{\quad{{\sum\limits_{i = 1}^{M}\left\lbrack {y_{i}^{\prime} - {\sum\limits_{j = i}^{N}{r_{ij}x_{j}}}} \right\rbrack^{2}} \leq C^{2}}} \right.$

The total number of slab equations included in (11) is M. These equations can be written with corresponding IDs as follows:

Slab equations ID Slab equations (12) Slab M −C ≦ y_(M)′ − [r_(M,M)x_(M) + . . . + r_(M,N)x_(N)] ≦ C ⋮ ⋮ Slab 2 −C ≦ y₂′ − [r_(2,2)x₂ + . . . + r_(2,N)x_(N)] ≦ C Slab 1 −C ≦ y₁′ − [r_(1,1)x₁ + . . . + r_(1,N)x_(N)] ≦ C In the SSD, only the last slab equation (Slab M) is used. However, the total available number of slab equations is M in (12). Thus, in order to achieve a lower decoding complexity, the main idea of the inventive method is to utilize all the available slab equations to find the candidate set, instead of only using Slab M.

With reference to FIG. 2, i is set as M and the initial candidate set ({circumflex over (x)}_(M)) is found by Slab M equation −C≦y′_(M)−└r_(M,M)x_(M)+ . . . +r_(M,N)x_(N)┘≦C in the step 210. The corresponding distance (dist_(M)) can be obtained by the search algorithm in the stage 1.

In the step 220, It is determined whether i=1. If it is true, the procedure goes to the step 240. Otherwise, in the step 221, the upper bound (x_(i−1,up)) and lower bound (x_(i−1,low)) of x_(i 1) corresponding to each candidate point of candidate set will be found by the radius constraint

${D_{i,{i - 1}} = {{{\begin{bmatrix} y_{i - 1}^{\prime} \\ y_{i}^{\prime} \end{bmatrix} - {\begin{bmatrix} r_{{i - 1},{i - 1}} & r_{{i - 1},i} & \ldots & r_{{i - 1},N} \\ 0 & r_{i,i} & \ldots & r_{i,N} \end{bmatrix}\begin{bmatrix} x_{i - 1} \\ x_{i} \\ \vdots \\ x_{N} \end{bmatrix}}}}^{2} \leq C^{2}}},{and}$ ${x_{{i - 1},{up}} = \frac{\sqrt{C^{2} - \left( {dist}_{i} \right)^{2}} + \left( {y_{i - 1}^{\prime} - {\sum\limits_{j = i}^{N}{r_{{i - 1},j}x_{j}}}} \right)}{r_{{i - 1},{i - 1}}}},{x_{{i - 1},{low}} = \frac{{- \sqrt{C^{2} - \left( {dist}_{i} \right)^{2}}} + \left( {y_{i - 1}^{\prime} - {\sum\limits_{j = i}^{N}{r_{{i - 1},j}x_{j}}}} \right)}{r_{{i - 1},{i - 1}}}}$

Therefore, d ist_(i−1) can be easily found by

dist_(i−1) ²=(y′ _(i−1)Σ_(j-i−1) ^(N) r _(i−1,j) x _(j))²+(dist_(i))².

In the step 230, using the upper and lower bounds corresponding to each candidate point, the new candidate set ({circumflex over (x)}_(i)) can be constructed by

{circumflex over (x)} _(i−1) =[└x _(i−1,low) ,x _(i−1,up) ┐∩Z,x _(i) , . . . , x _(N)].

A candidate point with minimum distance from {circumflex over (x)}_(i) is chosen and its ZF-SIC solution is obtained. Then, a new radius (C_(new)) is derived. In the step 231, C is updated according to C_(new) and an internal controlled variable “state” having an initial value of “increment” according to the following rule:

“state” = increment “state” = decrement C_(new) > C Add an increment to C and keep Both C and “state” are “state” = increment unchanged C_(new) ≦ C Set C = C_(new) and Set C = C_(new), and keep “state” = decrement “state” = decrement In the step 233, i is set as i−1 and the procedure goes to the step 220.

In the step 240, a candidate point with minimum distance from {circumflex over (x)}_(i) is chosen to be the estimate of x.

It should be noted that C is increased if the initial candidate set ({circumflex over (x)}_(M))is empty, and that the ZS-SIC solution is used as the estimate of x if the candidate set ({circumflex over (x)}_(i), 1≦i≧M−1) is empty.

Preprocessing

In underdetermined MIMO systems, the channel matrix is preprocessed with some techniques, which can reduce the decoding complexity or improve the performance of the SDA. There are many preprocessing techniques such as lattice reduction, column permutation, and scaling. However, we cannot apply these preprocessing techniques to reduce the decoding complexity in the decoder for the underdetermined MIMO systems of the present invention. As previously described, the primary decoding complexity results from the intersection of candidate sets. Therefore, it is desired that the procedure of intersection is executed as few times as possible.

First, the number of candidate points (N_(p)) inside the initial slab is defined as an index of decoding complexity. Therefore, the N_(p) is expected to be as small as possible. We rewrite the initial slab form as

−C≦y′ _(M) −└r _(M,M) x _(M) + . . . +r _(M,N) x _(N) ┘≦C.   (13)

The initial slab candidates can be found by channel columns reordering, and the number of the candidates is C (N,N −M+1). Choosing the initial slab from the candidates is important for the inventive decoder. Geometrically speaking, |y′_(M)| represents the distance from the origin to the slab, as shown in FIG. 3. It is assumed that the slab equation form is h₁x₁+h₂x₂=y, where h₁ is a constant and y is a variable, and |y′_(M)| is defined as the location index of slab (ξ). As shown in FIG. 3, N_(p) is small when ξ is large. Therefore, the slab with the maximum ξ will be chosen to be the initial slab.

FIG. 4 is a flowchart showing the preprocessing in the geometry based efficient decoding algorithm for underdetermined MIMO systems according to one embodiment of the invention. y′ of the equation (8) can be rewritten as

y′=[y′ ₁ y′ ₂ . . . y′ _(M)]^(T) =[{right arrow over (q)} ₁ ^(T) y {right arrow over (q)} ₂ ^(T) y . . . {right arrow over (q)} _(M) ^(T) y]^(T) ∈ R ^(M),   (14)

where Q=[{right arrow over (q)}₁ {right arrow over (q)}₂ . . . {right arrow over (q)}_(M)]∈ R^(M×M). In order to obtain y′_(M), {right arrow over (q)}_(M) is computed. Since different reorderings of channel columns result in different {right arrow over (q)}_(M), the problem becomes how to find {right arrow over (q)}_(M) efficiently. The channel column reordering is formed as HP, where P is a permutation matrix.

In the step 410, since P=I, HP=H=[{right arrow over (h)}₁ {right arrow over (h)}₂ . . . {right arrow over (h)}_(N)]. QR decomposition of the HP is given as:

$\begin{matrix} {{{V_{1}H} = \begin{bmatrix} T_{1} & A \\ 0 & {\overset{\sim}{H}}_{1} \end{bmatrix}},} & (15) \end{matrix}$

where V₁ is M×M Householder matrix of the first column vector of H, T₁ is a scalar and {tilde over (H)}₁=V₁[2:M, 1:M]H[1:M, 2:M]. Then, a new matrix is defined as {tilde over (H)}₁ ∈ R^(M−1×M−1) to perform the same procedure as:

$\begin{matrix} {{{V_{2}{\overset{\sim}{H}}_{1}} = \begin{bmatrix} T_{2} & A \\ 0 & {\overset{\sim}{H}}_{2} \end{bmatrix}},} & (16) \end{matrix}$

where V₂ is (M−1)×(M−1) Householder matrix of the first column vector of {tilde over (H)}₁, T₂ is a scalar and {tilde over (H)}₂=V₂[2:M−1,1:M−1]{tilde over (H)}₁[1:M−1,2:M−1]. And so on, the QR composition of H is obtained as:

Q^(T)H=R,   (17)

where

$Q^{T} = {\begin{bmatrix} {\overset{\rightharpoonup}{q}}_{1}^{T} \\ {\overset{\rightharpoonup}{q}}_{2}^{T} \\ \vdots \\ {\overset{\rightharpoonup}{q}}_{M}^{T} \end{bmatrix} = {U_{M - 1}\mspace{14mu} \ldots \mspace{14mu} U_{2}U_{1}}}$ and $U_{i} = {\begin{bmatrix} I & 0 \\ 0 & V_{i} \end{bmatrix}.}$

Since {right arrow over (q)}_(M) is the only one to be considered, only the last row of U_(M−1) is computed to yield to the following:

$\begin{matrix} {{\begin{bmatrix}  \otimes \\ \vdots \\  \otimes \\ {\overset{\rightharpoonup}{q}}_{M}^{T} \end{bmatrix} = {\begin{bmatrix} I & 0 & 0 \\ 0 & \otimes & \otimes \\ 0 & V_{M - {1{({2,1})}}} & V_{M - {1{({2,2})}}} \end{bmatrix}\Omega_{1}}},} & (17) \end{matrix}$

where Ω₁=U_(M−2) . . . U₁. To avoid unnecessary computations, only the last two rows of Ω₁ is considered. Therefore, the last two rows of U_(M−2) is computed as

$\Omega_{1} = {\begin{bmatrix} I & 0 & 0 & 0 \\ 0 & \otimes & \otimes & \otimes \\ 0 & V_{M - {2{({2,1})}}} & V_{M - {2{({2,2})}}} & V_{M - {2{({2,3})}}} \\ 0 & V_{M - {2{({3,1})}}} & V_{M - {2{({3,2})}}} & V_{M - {2{({3,3})}}} \end{bmatrix}\Omega_{2}}$

where Ω₂=U_(M−3) . . . U₁. By iterating this procedure, {right arrow over (q)}_(M) with P=I is obtained. From the equation (14), y′_(M) can be found accordingly.

In the step 420, y′_(M) of another order of channel columns is found quickly after the step 410 is performed. For example, assuming that the order of channel columns is to exchange {right arrow over (h)}_(M−1) and {right arrow over (h)}_(M) as [{right arrow over (h)}₁ . . . {right arrow over (h)}_(M){right arrow over (h)}_(M−1){right arrow over (h)}_(M+1) . . . {right arrow over (h)}_(N)]. It is observed that only U_(M−1)] is required to be computed. This concept can be used to find y′_(M) of other orderings of the channel columns. Finally, the slab from the candidates with the maximum ξ is chosen to be the initial slab.

The previously described preprocessing scheme is to perform an exhaustive search for all ξ. Therefore, the computational complexity is large when the number of candidates (C (N,N −M+1)) is large. In another embodiment of the invention, an alternative approach of preprocessing is provide to avoid the exhaustive search.

FIG. 5 is a flowchart showing the preprocessing in the geometry based efficient decoding algorithm for underdetermined MIMO systems according to another embodiment of the invention. In the step 51, initialization of the vector set V={{right arrow over (h)}_(i),i=1,2, . . . N} and the parameter k=1 is performed. In the step 52, The {right arrow over (h)}_(j), which has the lowest correlation with y among the current vector set V, is chosen and then will be normalized to {right arrow over (q)}_(k). In the step 53, {right arrow over (h)}_(j) is discarded from V, V is then updated by {right arrow over (h)}_(i)={right arrow over (h)}_(i)−{right arrow over (h)}_(i)·{right arrow over (q)}_(k) where ∀i≠j and k is set to k+1. The procedure goes to the step 52 till {right arrow over (q)}_(M) is found. Finally, r_(jk) is computed by r_(jk)={right arrow over (q)}_(j)·{right arrow over (h)}_(k) where j=1,2, . . . , k−1 to obtain the QR decomposition of the reordering H.

Simulations demonstrate that the inventive decoding algorithm has a lower decoding complexity than the SSD, and achieves a near-ML performance The inventive preprocessing scheme can further reduce the decoding complexity of the proposed decoder especially for a large constellation size. In the case of 64-QAM and 4×3 MIMO, the decoding complexity of the inventive decoder can save up to 76% compared to SSD. If the inventive preprocessing is used, the decoding complexity of the inventive decoder can save up to 79% compared to SSD.

While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects. Therefore, the appended claims are intended to encompass within their scope of all such changes and modifications as are within the true spirit and scope of the exemplary embodiment(s) of the present invention. 

1. A decoding method of a geometry based efficient decoder for underdetermined MIMO systems, comprising the steps of: (1) arbitrarily selecting a point as an initial point x_(int)=[x₁ ^(int) x₂ ^(int) . . . x_(N) ^(int)]^(T) ∈

^(N), setting X=x_(int), and storing the initial point in p and deleting the initial point from X; (2) determining whether X_(V) is empty and p is 0, if yes, all points in X_(in) and their corresponding distances are solutions, otherwise, implementing the step (3); (3) arbitrarily selecting a value of k representing an unsearched dimension of the initial point and calculating: ${x_{k,{up}} = {p_{k} - \frac{\Delta \; {y(p)}}{w_{k}} + C}},{x_{k,{low}} = {p_{k} - \frac{\Delta \; {y(p)}}{w_{k}} - {C.}}}$ where Δy(p)=Σ_(i=1) ^(N) w_(i)p_(i)−y, and deriving all legitimate points between x_(k,up), x_(k,low) according to the calculated results of x_(k,up), x_(k,low); (4) determining for each derived point whether it exists in x_(v), if no, adding the point into X, X_(V) and X_(in), and setting the kth element of the corresponding vector D_(V) to “1”, otherwise, only setting the kth element of the corresponding vector D_(V) to “1”; (5) calculating the corresponding distance from previously derived value of Δy(); (6) deriving candidate points └x_(k,up)+d┘,┌x_(k,low)−d┐ according to x_(k,up),x_(k,low), wherein d is the smallest distance between the points; (7) determining whether the candidate points exist in X_(V), if no, adding the points into X and X_(V), and setting the kth element of the corresponding vector D_(V) to “1”, otherwise, only setting the kth element of the corresponding vector D_(V) to “1”; (8) determining whether all the elements of the corresponding vector D_(V) are “1”, if yes, implementing the step (9), otherwise, determining whether p satisfies a current search criteria, if no, implementing the step (9), otherwise, going back to the step (2); and (9) arbitrarily selecting one of the candidate points for substitution of a current point p and deleting the selected point from X.
 2. The decoding method of claim 1, further comprising the steps of reordering a channel matrix H.
 3. A decoding method of a geometry based efficient decoder for underdetermined MIMO systems, comprising the steps of: (1) setting i as (M−1) and finding an initial candidate set ({circumflex over (x)}_(i+1)) by a Slab M equation −C≦y′_(M)−└r_(M,M)x_(M)+ . . . +r_(M,N)x_(N)┘≦C, and obtaining a corresponding distance (Dist_(i+1)); (2) if i=1, performing the step (4), otherwise, finding an upper bound (x_(i−1,up)) and lower bound (x_(i−1,low)) of x_(i−1) corresponding to each candidate point of a candidate set by a radius constraint: ${D_{i,{i - 1}} = {{{\begin{bmatrix} y_{i - 1}^{\prime} \\ y_{i}^{\prime} \end{bmatrix} - {\begin{bmatrix} r_{{i - 1},{i - 1}} & r_{{i - 1},i} & \ldots & r_{{i - 1},N} \\ 0 & r_{i,i} & \ldots & r_{i,N} \end{bmatrix}\begin{bmatrix} x_{i - 1} \\ x_{i} \\ \vdots \\ x_{N} \end{bmatrix}}}}^{2} \leq C^{2}}},{{and}{x_{{i - 1},{up}} = \frac{\sqrt{C^{2} - \left( {dist}_{i} \right)^{2}} + \left( {y_{i - 1}^{\prime} - {\sum\limits_{j = i}^{N}{r_{{i - 1},j}x_{j}}}} \right)}{r_{{i - 1},{i - 1}}}}},{x_{{i - 1},{low}} = \frac{{- \sqrt{C^{2} - \left( {dist}_{i} \right)^{2}}} + \left( {y_{i - 1}^{\prime} - {\sum\limits_{j = i}^{N}{r_{{i - 1},j}x_{j}}}} \right)}{r_{{i - 1},{i - 1}}}}$ so that d ist_(i−1) is found by dist_(i 1) ²=(y′_(i 1)−Σ_(j=i−1) ^(N)r_(i 1,j)x_(j))²+(dist_(i))²; (3) using the upper and lower bounds corresponding to each candidate point to construct a new candidate set ({circumflex over (x)}_(i)) by {circumflex over (x)}_(i−1)=[└x_(i−1,low),x_(i−1,up)┐∩z,x_(i), . . . , x_(N)], choosing a candidate point with minimum distance from {circumflex over (x)}_(i), obtaining its ZF-SIC solution and a new radius (C_(new)), and updating the radius C according to C_(new) and an internal controlled variable “state” having an initial value of “increment”, and repeating the step (2) with i set as i−1; and (4) choosing a candidate point with a minimum distance from {circumflex over (x)}_(i) to be the estimate of x.
 4. The decoding method of claim 3, further comprising the steps of reordering a channel matrix H.
 5. A decoding method of a geometry based efficient decoder for underdetermined MIMO systems, comprising the steps of: (1) performing QR decomposition of H by ${{V_{1}H} = \begin{bmatrix} T_{1} & A \\ 0 & {\overset{\sim}{H}}_{1} \end{bmatrix}},$ where V₁ is M×M Householder matrix of the first column vector of H, T₁ is a scalar and {tilde over (H)}₁=V₁[2:M,1:M]H[1:M,2:M], and defining a new matrix as {tilde over (H)}₁ ∈ R^(M−1×M−1) to perform the same procedure as ${{V_{2}{\overset{\sim}{H}}_{1}} = \begin{bmatrix} T_{2} & A \\ 0 & {\overset{\sim}{H}}_{2} \end{bmatrix}},$ where V₂ is (M−1)×(M−1) Householder matrix of the first column vector of {tilde over (H)}₁, T₂ is a scalar and {tilde over (H)}₂[2:M−1,1:M−1]{tilde over (H)}₁[1:M−1,2:M−1], and so on, whereby Q^(T)H=R is obtained, where ${Q^{T} = {{{\begin{bmatrix} {\overset{\rightharpoonup}{q}}_{1}^{T} \\ {\overset{\rightharpoonup}{q}}_{2}^{T} \\ \vdots \\ {\overset{\rightharpoonup}{q}}_{M}^{T} \end{bmatrix} = {U_{M - 1}\mspace{14mu} \ldots \mspace{14mu} U_{2}U_{1}}}{and}\text{}U_{i}} = \begin{bmatrix} I & 0 \\ 0 & V_{i} \end{bmatrix}}};$ (2) computing the last row of U_(M−1) to yield to the following: ${\begin{bmatrix}  \otimes \\ \vdots \\  \otimes \\ {\overset{\rightharpoonup}{q}}_{M}^{T} \end{bmatrix} = {\begin{bmatrix} I & 0 & 0 \\ 0 & \otimes & \otimes \\ 0 & V_{M - {1{({2,1})}}} & V_{M - {1{({2,2})}}} \end{bmatrix}\Omega_{1}}},$ where Ω₁=U_(M−2) . . . U₁, and computing the last two rows of U_(M−2) as $\Omega_{1} = {\begin{bmatrix} I & 0 & 0 & 0 \\ 0 & \otimes & \otimes & \otimes \\ 0 & V_{M - {2{({2,1})}}} & V_{M - {2{({2,2})}}} & V_{M - {2{({2,3})}}} \\ 0 & V_{M - {2{({3,1})}}} & V_{M - {2{({3,2})}}} & V_{M - {2{({3,3})}}} \end{bmatrix}\Omega_{2}}$ where Ω₂=U_(M−3) . . . U₁, and so on, whereby {right arrow over (q)}_(M) with P=I is obtained and y′_(M) is also obtained accordingly; and (3) finding y′_(M) of another order of channel columns and choosing the slab from the candidates according to y′_(M) to be an initial slab.
 6. A decoding method of a geometry based efficient decoder for underdetermined MIMO systems, comprising the steps of: (1) initializing a vector set V={{right arrow over (h)}_(i),i=1,2, . . . N} and a parameter k=1; (2) The {right arrow over (h)}_(j), which has the lowest correlation with y among the current vector set V, is chosen and then will be normalized to {right arrow over (q)}_(k); (3) discarding {right arrow over (h)}_(j) from V, and updating V by {right arrow over (h)}_(i)={right arrow over (h)}_(i)−{right arrow over (h)}_(i)·{right arrow over (q)}_(k) where ∀i≠j and repeating the step (2) with k set to k+1; (4) repeating the step (2) till {right arrow over (q)}_(M) is found; and (5) computing r_(jk) by r_(jk)={right arrow over (q)}_(j)·{right arrow over (h)}_(k) where j=1,2, . . . , k−1 to obtain the QR decomposition of the reordering H.
 7. A geometry based efficient decoder for underdetermined MIMO systems, performing the steps of: (1) arbitrarily selecting a point as an initial point x_(int)=[x₁ ^(int) x₂ ^(int) . . . x_(N) ^(int)]^(T) ∈

^(N), setting X=x_(int), and storing the initial point in p and deleting the initial point from X; (2) determining whether X_(V) is empty and p is 0, if yes, all points in X_(in) and their corresponding distances are solutions, otherwise, implementing the step (3); (3) arbitrarily selecting a value of k representing an unsearched dimension of the initial point and calculating: ${x_{k,{up}} = {p_{k} - \frac{\Delta \; {y(p)}}{w_{k}} + C}},{x_{k,{low}} = {p_{k} - \frac{\Delta \; {y(p)}}{w_{k}} - {C.}}}$ where Δy(p)=Σ_(i−1) ^(N)w_(i)p_(i)−y, and deriving all legitimate points between X_(k,up),x_(k,low) according to the calculated results of x_(k,up),x_(k,low); (4) determining for each derived point whether it exists in x_(v), if no, adding the point into X, X_(V) and X_(in), and setting the kth element of the corresponding vector D_(V) to “1”, otherwise, only setting the kth element of the corresponding vector D_(V) to “1”; (5) calculating the corresponding distance from previously derived value of Δy(); (6) deriving candidate points └x_(k,up)+d┘,┌x_(k,low)−d┐ according to x_(k,up),x_(k,low), wherein d is the smallest distance between the points; (7) determining whether the candidate points exist in X_(V), if no, adding the points into X and X_(V), and setting the kth element of the corresponding vector D_(V) to “1”, otherwise, only setting the kth element of the corresponding vector D_(V) to “1”; (8) determining whether all the elements of the corresponding vector D_(V) are “1”, if yes, implementing the step (9), otherwise, determining whether p satisfies a current search criteria, if no, implementing the step (9), otherwise, going back to the step (2); and (9) arbitrarily selecting one of the candidate points for substitution of a current point p and deleting the selected point from X.
 8. The decoder of claim 7, further performing the steps of: (1) setting i as (M−1) and finding an initial candidate set ({circumflex over (x)}_(i+1)) by a Slab M equation −C≦y′_(M)−└r_(M,M)x_(M)+ . . . +r_(M,N)x_(N)┘≦C , and obtaining a corresponding distance (Dist_(i+1)); (2) if i=1, performing the step (4), otherwise, finding an upper bound (x_(i−1,up)) and lower bound (x_(i−1,low)) of x_(i−1) corresponding to each candidate point of a candidate set by a radius constraint: ${D_{i,{i - 1}} = {{{\begin{bmatrix} y_{i - 1}^{\prime} \\ y_{i}^{\prime} \end{bmatrix} - {\begin{bmatrix} r_{{i - 1},{i - 1}} & r_{{i - 1},i} & \ldots & r_{{i - 1},N} \\ 0 & r_{i,i} & \ldots & r_{i,N} \end{bmatrix}\begin{bmatrix} x_{i - 1} \\ x_{i} \\ \vdots \\ x_{N} \end{bmatrix}}}}^{2} \leq C^{2}}},{{and}{x_{{i - 1},{up}} = \frac{\sqrt{C^{2} - \left( {dist}_{i} \right)^{2}} + \left( {y_{i - 1}^{\prime} - {\sum\limits_{j = i}^{N}{r_{{i - 1},j}x_{j}}}} \right)}{r_{{i - 1},{i - 1}}}}},{x_{{i - 1},{low}} = \frac{{- \sqrt{C^{2} - \left( {dist}_{i} \right)^{2}}} + \left( {y_{i - 1}^{\prime} - {\sum\limits_{j = i}^{N}{r_{{i - 1},j}x_{j}}}} \right)}{r_{{i - 1},{i - 1}}}}$ so that d ist_(i−1) is found by dist_(i−1) ²=(y′_(i−1)−Σ_(j-i−1) ^(N)r_(i−1,j)x_(j))²+(dist_(i))²; (3) using the upper and lower bounds corresponding to each candidate point to construct a new candidate set ({circumflex over (x)}_(i)) by {circumflex over (x)}_(i−1)=[└x_(i−1,low),x_(i−1,up)┘∩Z,x_(i), . . . , x_(N)], choosing a candidate point with minimum distance from {circumflex over (x)}_(i), obtaining its ZF-SIC solution and a new radius (C_(new)), and updating the radius C according to C_(new) and an internal controlled variable “state” having an initial value of “increment”, and repeating the step (2) with i set as i-1; and (4) choosing a candidate point with a minimum distance from {circumflex over (x)}_(i) to be the estimate of x.
 9. The decoder of claim 8, further performing the steps of reordering a channel matrix H.
 10. The decoder of claim 9, further performing the steps of: (1) performing QR decomposition of H by ${{V_{1}H} = \begin{bmatrix} T_{1} & A \\ 0 & {\overset{\sim}{H}}_{1} \end{bmatrix}},$ where V₁ is M×M Householder matrix of the first column vector of H, T₁ is a scalar and {tilde over (H)}₁=[2:M,1:M]H[1:M,2:M], and defining a new matrix as {tilde over (H)}₁ ∈ R^(M−1×M−1) to perform the same procedure as ${{V_{2}{\overset{\sim}{H}}_{1}} = \begin{bmatrix} T_{2} & A \\ 0 & {\overset{\sim}{H}}_{2} \end{bmatrix}},$ where V₂ is (M−1)×(M−1) Householder matrix of the first column vector of {tilde over (H)}₁, T₂ is a scalar and {tilde over (H)}₂=V₂[2:M−1,1:M−1]{tilde over (H)}₁[1:M−1,2:M−1], and so on, whereby Q^(T)H=R is obtained, where ${Q^{T} = {{{\begin{bmatrix} {\overset{\rightharpoonup}{q}}_{1}^{T} \\ {\overset{\rightharpoonup}{q}}_{2}^{T} \\ \vdots \\ {\overset{\rightharpoonup}{q}}_{M}^{T} \end{bmatrix} = {U_{M - 1}\mspace{14mu} \ldots \mspace{14mu} U_{2}U_{1}}}{and}\text{}U_{i}} = \begin{bmatrix} I & 0 \\ 0 & V_{i} \end{bmatrix}}};$ (2) computing the last row of U_(M−1) to yield to the following: ${\begin{bmatrix}  \otimes \\ \vdots \\  \otimes \\ {\overset{\rightharpoonup}{q}}_{M}^{T} \end{bmatrix} = {\begin{bmatrix} I & 0 & 0 \\ 0 & \otimes & \otimes \\ 0 & V_{M - {1{({2,1})}}} & V_{M - {1{({2,2})}}} \end{bmatrix}\Omega_{1}}},$ where Ω₁=U_(M−2) . . . U₁, and computing the last two rows of U_(M−2) as $\Omega_{1} = {\begin{bmatrix} I & 0 & 0 & 0 \\ 0 & \otimes & \otimes & \otimes \\ 0 & V_{M - {2{({2,1})}}} & V_{M - {2{({2,2})}}} & V_{M - {2{({2,3})}}} \\ 0 & V_{M - {2{({3,1})}}} & V_{M - {2{({3,2})}}} & V_{M - {2{({3,3})}}} \end{bmatrix}\Omega_{2}}$ where Ω₂=U_(M 3) . . . U₁ , and so on, whereby {right arrow over (q)}_(M) with P=I is obtained and y′_(M) is also obtained accordingly; and (3) finding Y′_(M) of another order of channel columns and choosing the slab from the candidates according to y′_(M) to be an initial slab.
 11. The decoder of claim 9, further performing the steps of: (1) initializing a vector set V={{right arrow over (h)}_(i),i=1,2, . . . N} and a parameter k=1; (2) The {right arrow over (h)}_(j), which has the lowest correlation with y among the current vector set V, is chosen and then will be normalized to {right arrow over (q)}_(k); (3) discarding {right arrow over (h)}_(j) from V, and updating V by {right arrow over (h)}_(i)={right arrow over (h)}_(i)−{right arrow over (h)}_(i)·{right arrow over (q)}_(k) where ∀i≠j and repeating the step (2) with k set to k+1 ; (4) repeating the step (2) till {right arrow over (q)}_(M) is found; and (5) computing r_(jk) by r_(jk)={right arrow over (q)}_(j)·{right arrow over (h)}_(k) where j=1,2, . . . , k−1 to obtain the QR decomposition of the reordering H. 